package cn.b.sky.mes.em.service;

import java.util.List;

import cn.b.sky.mes.em.model.EquipmentAttach;
import org.springframework.web.multipart.MultipartFile;

import cn.b.sky.mes.em.model.Equipment;
import cn.b.sky.mes.em.model.condition.EquipmentCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * <strong>Title : EquipmentService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.em.service.impl<br></strong>
 * <strong>Description : </strong>设备业务接口<br> 
 * <strong>Create on : 2015年11月3日 上午9:54:59<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */

public interface EquipmentService {
  /**
   * <strong>Title : selectEquipmentList<br></strong>
   * <strong>Description : </strong>获取设备列表<br> 
   * <strong>Create on : 2015年11月2日 上午10:44:14<br></strong>
   * <p>
   * @param condition
   * @return
   * List<EquipmentStatus>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Equipment> selectEquipmentList(EquipmentCondition condition);

  /**
   * <strong>Title : selectEquipmentCount<br></strong>
   * <strong>Description : </strong>获取设备总数<br> 
   * <strong>Create on : 2015年11月2日 上午10:44:14<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectEquipmentCount(EquipmentCondition condition);

  /**
   * <strong>Title : updateEquipment<br></strong>
   * <strong>Description : </strong>更新设备<br> 
   * <strong>Create on : 2015年11月2日 上午10:44:14<br></strong>
   * <p>
   * @param condition
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateEquipment(Equipment equipment);

  /**
   * <strong>Title : saveEquipment<br></strong>
   * <strong>Description : </strong>新增设备<br> 
   * <strong>Create on : 2015年11月2日 上午10:44:14<br></strong>
   * <p>
   * @param condition
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveEquipment(Equipment equipment);

  /**
   * <strong>Title : deleteEquipment<br></strong>
   * <strong>Description : </strong>新增设备<br> 
   * <strong>Create on : 2015年11月2日 上午10:44:14<br></strong>
   * <p>
   * @param condition
   * @return
   * BatchJobReport
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteEquipment(String equipmentCode, String siteCode);

  /**
   * <strong>Title : getEquipment<br></strong>
   * <strong>Description : </strong>根据设备编号获取设备<br> 
   * <strong>Create on : 2015年11月2日 上午10:54:28<br></strong>
   * <p>
   * @param id
   * @return
   * Equipment
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  Equipment getEquipment(String equipmentCode, String siteCode);

  /**
   * <strong>Title : saveEquipmentAttachment<br></strong>
   * <strong>Description : </strong>保存设备附件<br> 
   * <strong>Create on : 2016年1月8日 上午9:58:13<br></strong>
   * <p>
   * @param equipmentAttach
   * @param equipmentFile
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveEquipmentAttachment(EquipmentAttach equipmentAttach, MultipartFile equipmentFile);

  /**
   * <strong>Title : saveOrUpdateEquipment<br></strong>
   * <strong>Description : </strong>保存或更新设备及设备附件表<br> 
   * <strong>Create on : 2016年1月8日 上午10:35:17<br></strong>
   * <p>
   * @param equipment
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   * @param id 
   */
  void saveOrUpdateEquipment(Equipment equipment, String id,MultipartFile pictureAttachment);

  /**
   * 
   * <strong>Title : selectEquipmentListForSuggest<br></strong>
   * <strong>Description : </strong>设备搜索建议<br> 
   * <strong>Create on : 2016年4月11日 下午7:26:01<br></strong>
   * <p>
   * @param condition
   * @return
   * List<Equipment>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Equipment> selectEquipmentListForSuggest(EquipmentCondition condition);

}
